↳ ITRS
↳ ITRStoQTRSProof
z
Cond_f(TRUE, x) → f(x)
f(x) → Cond_f(<@z(*@z(x, x), 0@z), x)
Cond_f(TRUE, x0)
f(x0)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
COND_F(true, x) → F(x)
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
F(x) → LESS_INT(mult_int(x, x), pos(0))
F(x) → MULT_INT(x, x)
LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
MULT_INT(pos(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(pos(x), neg(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), neg(y)) → MULT_NAT(x, y)
MULT_NAT(s(x), s(y)) → PLUS_NAT(mult_nat(x, s(y)), s(y))
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
COND_F(true, x) → F(x)
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
F(x) → LESS_INT(mult_int(x, x), pos(0))
F(x) → MULT_INT(x, x)
LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
MULT_INT(pos(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(pos(x), neg(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), neg(y)) → MULT_NAT(x, y)
MULT_NAT(s(x), s(y)) → PLUS_NAT(mult_nat(x, s(y)), s(y))
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
From the DPs we obtained the following set of size-change graphs:
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ QDP
LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
No rules are removed from R.
LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
POL(LESS_INT(x1, x2)) = 2·x1 + x2
POL(neg(x1)) = x1
POL(s(x1)) = 2·x1
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
No rules are removed from R.
LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
POL(LESS_INT(x1, x2)) = 2·x1 + x2
POL(pos(x1)) = x1
POL(s(x1)) = 2·x1
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
COND_F(true, x) → F(x)
Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
COND_F(true, x) → F(x)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
less_int(pos(0), pos(0)) → false
less_int(neg(0), pos(0)) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
Cond_f(true, x0)
f(x0)
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPOrderProof
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
COND_F(true, x) → F(x)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
less_int(pos(0), pos(0)) → false
less_int(neg(0), pos(0)) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
COND_F(true, x) → F(x)
Used ordering: Polynomial interpretation [POLO]:
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
POL(0) = 0
POL(COND_F(x1, x2)) = x1
POL(F(x1)) = 0
POL(false) = 0
POL(less_int(x1, x2)) = x1
POL(mult_int(x1, x2)) = 0
POL(mult_nat(x1, x2)) = 0
POL(neg(x1)) = 1 + x1
POL(plus_nat(x1, x2)) = 0
POL(pos(x1)) = 0
POL(s(x1)) = 1
POL(true) = 1
less_int(neg(0), pos(0)) → false
less_int(pos(0), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), pos(0)) → false
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
↳ ITRS
↳ ITRStoQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
less_int(pos(0), pos(0)) → false
less_int(neg(0), pos(0)) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)